if(!String.prototype.trim) {
	String.prototype.trim = function () {
		return this.replace(/^\s+|\s+$/g,'');
	};
}

function isNumber(v) {
	return typeof v === 'number' && isFinite(v);
}

function formatMoney(s, n) {
	n = n >= 0 && n <= 20 ? n : 2;
	s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
	var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
	t = "";
	for (i = 0; i < l.length; i++) {
		t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
	}
	if(r==undefined){
		return t.split("").reverse().join("");
	}else{
		return t.split("").reverse().join("") + "." + r;
	}
}
/**
 * 转换成比例格式，0.23转换成23%
 * @param v
 * @param decimal 小数点后几位，默认为0
 */
function formatRate(v,decimal){
	if(!v){
		return v;
	}
	if(decimal){
		return (v*100).toFixed(decimal)+"%";
	}else{
		return (v*100).toFixed(2)+"%";
	}
}
(function($){
	$.fn.middle = function(){
		return this.each(function(i){
			var h = $(this).height();
			var oh = $(this).outerHeight();
			var mt = $(document).scrollTop()-((h + (oh -h))/2);
			$(this).css("margin-top",mt+"px");
			$(this).css("top","50%");
			$(this).css("position","absolute");
		});
	};
	$.fn.center = function(){
		return this.each(function(i){
			var w = $(this).width();
			var ow = $(this).outerWidth();
			var ml = $(document).scrollLeft()-((w+(ow-w))/2);
			$(this).css("margin-left",ml+"px");
			$(this).css("left","50%");
			$(this).css("position","absolute");
		});
	};
	
	/**
	 * 用模态对话框的形式显示页面元素。
	 */
	$.fn.openDialog = function(opt){
		return this.each(function(){
			/** 关闭之前的对话框 */
			if(typeof $dialog != "undefined"){
				$dialog.closeDialog();
			}
			
			/** 创建对话框 */
			$dialog = $("<div>");
			$dialog.css({
				'background-color':'#ffffff',
				'border':'5px solid #dddddd',
				'background-color':'#fff',
				'-moz-box-shadow': '0 0 5px 5px #888',
				'-webkit-box-shadow': '0 0 5px 5px#888',
				'box-shadow': '0 0 2px 2px #888'
			});
			
			if(!(opt && opt.showHeader===false)){
				/** 创建标题栏 */
				var $oTitle = $("<div>");
				$oTitle.css({
					'position' : 'relative',
					'background-color':'#efefef',
					'padding':'5px 10px',
					'font-size':'16px',
					'font-weight' : 'bold',
					'height' : '30px',
					'line-height' : '30px'
				});
				if(opt && opt.title){
					$oTitle.text(opt.title);
				}else{
					$oTitle.text("对话框");
				}
				$oTitle.appendTo($dialog);
				
				/** 创建右上角关闭按钮 */
				var $oClose = $("<a>");
				$oClose.css({
					'position' : 'absolute',
					'top' : '5px',
					'right' : '10px', 
					'display' : 'block', 
					'font-size' : '14px',
					'font-weight' : 'normal'
				});
				$oClose.attr("href","javascript:void(0)");
				$oClose.text("关闭");
				$oClose.appendTo($oTitle);
				
				/** 注册关闭对话框事件 */
				$oClose.click(function(){
					if(opt && typeof opt.beforeClose == "function" && opt.beforeClose()===false){
						return false;
					}
					$dialog.closeDialog();
				});
			}
			
			/** 备份显示元素原来的父元素和显示方式 */
			$dialogcontentdiv = $(this);
			$original_parent = $dialogcontentdiv.parent();
			$original_display = $dialogcontentdiv.css("display");
			$dialogcontentdiv.show();
			$dialogcontentdiv.appendTo($dialog);
			
			/** 显示对话框 */
			$dialog.appendTo($original_parent);
			$dialog.middle();
			$dialog.center();
			$dialog.draggable();
			
			/** 添加遮蔽层 */
			$dialog.displayShadow();
		});
	};

	/**
	 * 关闭对话框
	 */
	$.fn.closeDialog = function(){
		return this.each(function(){
			if(typeof $dialog != "undefined"){//防止重复关闭
				$dialogcontentdiv.css("display",$original_display);//恢复元素显示方式
				$dialogcontentdiv.appendTo($original_parent);//回复父元素
				$dialog.cancelShadow();//关闭遮蔽层
				$dialog.remove();//删除对话框元素
				
				/** 删除跟dialog相关的全局变量 */
				delete $original_display;
				delete $original_parent;
				delete $dialogcontentdiv;
				delete $dialog;
			}
		});
	};
	
	$.fn.displayShadow = function(){
		return this.each(function(){
			if(typeof $oOverlay != "undefined"){
				$oOverlay.cancelShadow();
			}
			
			$oOverlay = $('<div>').css({
				height : '100%',
				width : '100%',
				position : 'fixed',
				zIndex : 20,
				left : 0,
				top : 0
			});

			$oOverlay.css({
				opacity : 0.6,
				background : '#000'
			});
			
			$oOverlay.appendTo('body');
			
			if ($.browser.msie && $.browser.version < 7) {
				$oOverlay.css({
					position : 'absolute',
					height : $(document).height(),
					width : $(document).width()
				});
			}
			
			
			$(this).css("zIndex",parseInt($oOverlay.css("zIndex"))+10);
			return;
		});
	};
	
	$.fn.cancelShadow = function(){
		return this.each(function(){
			if(typeof $oOverlay != "undefined"){
				if($oOverlay){
					$oOverlay.css("display","none");
				}
				$oOverlay.remove();
				delete $oOverlay;
			}
		});
	};
})(jQuery);
function fillZero(v){
	if(v==null || v==''){
		return 0;
	}
	return v;
}
